package cn.gok.homework;

import java.util.Scanner;

/**
 * className : cn.gok.homework.homework3
 * Desc : TODO
 *
 * @author : lenovo
 * @date : 2022/7/6 14:47
 *
 * 1 人的结婚
 *  编写Person类，name，sex，age，isMarried（是否已婚）
 *   属性私有，getset公开，全构造函数。
 *
 *   增加静态方法
 *   public static boolean marryWith(Person p1,Person p2){
 *    //工具类方法，执行p1和p2的结婚
 *    // 返回是否结婚成功
 *    //1 都要未婚
 *     //2 要异性
 *    //3 男生到达20岁，女生到达19岁
 *  }
 *
 * 2 Person类中，增加方法  public void study（String school） ；//显示 xxx在xxxx学校学习。
 *
 * 在main中，创建该类一个匿名内部类对象，重写study方法，并输入学习的时间，显示xxxx在xxx学校学习了几年。
 */

class Person{
    private String name;
    private String sex;
    private int age;
    private boolean isMarried;//true 已婚 false 未婚

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", isMarried='" + isMarried + '\'' +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public boolean getIsMarried() {
        return isMarried;
    }

    public void setIsMarried(boolean isMarried) {
        this.isMarried = isMarried;
    }

    public Person(String name, String sex, int age, boolean isMarried) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.isMarried = isMarried;
    }


    public static boolean marryWith(Person p1,Person p2){
        //工具类方法，执行p1和p2的结婚
        // 返回是否结婚成功
        //1 都要未婚+
        //2 要异性
        //3 男生到达20岁，女生到达19岁
        if (p1.isMarried==false&&p2.isMarried==false&&(p1.sex!=p2.sex)){
            if (p1.sex=="男"){
                if (p1.age>=20){
                    if (p2.age>=19){
                        System.out.println("两人可以结婚");
                    }else {
                        System.out.println("女方年龄不够");
                    }
                }else {
                    System.out.println("男方年龄不够");
                }
            }else if (p1.sex=="女"){
                if (p1.age>=19){
                    if (p2.age>=20){
                        System.out.println("两人可以结婚");
                    }else {
                        System.out.println("男方年龄不够");
                    }
                }else {
                    System.out.println("女方年龄不够");
                }
            }
        }
        else {
            System.out.println("双方未达到结婚条件");
        }
        p1.setIsMarried(true);
        p2.setIsMarried(true);
        System.out.println("结婚成功");
        return true;
    }


    public void study (String school){
        System.out.println(this.name+"在"+school+"学习");
    };


}

public class homework3 {
    public static void main(String[] args) {
        Person.marryWith(new Person("沙","男",23,false),new Person("云","女",20,false));

        //创建该类一个匿名内部类对象，重写study方法，并输入学习的时间，显示xxxx在xxx学校学习了几年
        Person person =new Person("沙","男",23,false){
            @Override
            public void study(String school) {
                System.out.println("输入学习的时间");
                String studyTime = new Scanner(System.in).nextLine();
                System.out.println(this.getName()+"在"+school+"学习了"+studyTime+"年");
            }
        };
        person.study("全职大");
    }
}